torch Torch (học máy)

Gói cốt lõi của Torch là torch. Nó cung cấp một mảng hay tensor n chiều một cách linh hoạt, hỗ trợ các quy trình cơ bản để index, chuyển vị, truyền, thay đổi kích thước, chia sẻ kho lưu trữ và tạo bản sao (cloning). Tensor cũng hỗ trợ các phép toán như max, min, sum; phân phối thống kê như phân phối đều, phân phối chuẩnphân phối đa thức; các phép toán BLAS như tích vô hướng, phép nhân ma trận với vector, phép nhân 2 ma trận.

Ví dụ sau đây sử dụng torch thông qua trình biên dịch REPL:

> a = torch.randn(3,4)> =a-0.2381 -0.3401 -1.7844 -0.2615 0.1411  1.6249  0.1708  0.8299-1.0434  2.2291  1.0525  0.8465[torch.DoubleTensor of dimension 3x4]> a[1][2]-0.34010116549482	> a:narrow(1,1,2)-0.2381 -0.3401 -1.7844 -0.2615 0.1411  1.6249  0.1708  0.8299[torch.DoubleTensor of dimension 2x4]> a:index(1, torch.LongTensor{1,2})-0.2381 -0.3401 -1.7844 -0.2615 0.1411  1.6249  0.1708  0.8299[torch.DoubleTensor of dimension 2x4]> a:min()-1.7844365427828

Gói torch cũng đơn giản hóa việc lập trình hướng đối tượngtuần tự hóa bằng cách cung cấp các chức năng tiện lợi khác nhau. Hàm torch.class(classname, parentclass) có thể sử dụng để tạo (lớp) factory method. Khi hàm tạo được gọi, torch khởi tạo và lập một table dạng Lua với metatable do người dùng định nghĩa qua đó table đó trở thành một đối tượng.

Các đối tượng sử dụng torch factory cũng được tuần tự hóa, miễn là chúng không chứa tham chiếu đến các đối tượng không thể tuần tự hóa, như các coroutine dạng Lua và userdata dạng Lua. Tuy nhiên, userdata có thể tuần tự hóa nếu nằm trong một kiểu table (hay metatable) cung cấp các phương thức read()write().